package com.tanovo.service;

import com.tanovo.bo.RoleFindBo;
import com.tanovo.bo.RoleResourceBindBo;
import com.tanovo.bo.UserCore;
import com.tanovo.domain.Role;

import java.util.List;

public interface IRoleService {
    /**
     * 获取用户角色列表
     * @param userCore
     * @return
     */
    List<Role> getRoleListByUserCore(UserCore userCore);

    /**
     * 添加角色
     * @param role
     */
    void addRole(Role role);

    /**
     * 逻辑删除角色
     * @param roleId
     */
    void delete(Integer roleId);

    /**
     * 编辑角色
     * @param role
     */
    void editRole(Role role);

    List<Role> getRolelist(RoleFindBo roleFindBo);

    /**
     * 角色绑定资源
     * @param roleResourceBindBo
     */
    void bindResources(RoleResourceBindBo roleResourceBindBo);

    /**
     * 角色解绑资源
     * @param roleResourceBindBo
     */
    void unBindResources(RoleResourceBindBo roleResourceBindBo);

    /**
     * 查找用户角色列表 包括未选中
     * @param roleFindBo
     * @return
     */
    List<Role> getCheckedRolelist(RoleFindBo roleFindBo);

    /**
     * 批量删除角色列表
     * @param roleIdList
     */
    void deleteRoleList(List<Integer> roleIdList);


    void initAdmin(UserCore userCore);


}
